home *** CD-ROM | disk | FTP | other *** search
/ Mac Cube 5: Home Applications / MacCube Volume 5: Home Applications.iso / Home / MacFolklore 1.0 / Documentation / The Grade A testing engine < prev   
Text File  |  1995-04-19  |  4KB  |  97 lines

  1. ABOUT THE GRADE A TESTING ENGINE
  2. --------------------------------
  3. Note: This document, Grade A, and MacFolklore are all (c)1995, by Scott J.
  4. Kleper. All Rights Reserved.
  5.  
  6. _Introduction_
  7.  
  8. Grade A is a program I started in 1992, back when I was taking Spanish as a 
  9. sophomore at Pittsford Sutherland High School. I wanted a program that would
  10. test me on my vocabulary words randomly and give me a percentage at the end.
  11. It was originally text-based and written in the Pascal programming language.
  12. As time went by, I improved it, at one point even porting it to Windows for
  13. a friend.
  14.  
  15. About a year ago, a local sysop wanted me to write some online games for his
  16. BBS. I wanted to start with something easy and text-based, so I picked up the
  17. Grade A code and modified it into a program called MacFreak. The game was
  18. never put online, but was distributed to a few friends. Essentially, it was
  19. the same text-based program, but the questions were all about Macintosh 
  20. history. It was also now written in C instead of Pascal. Also, instead of
  21. allowing the user to type in the answer, it gave the user three choices to
  22. select from.
  23.  
  24. Then, about two months ago, I was going through some old code. I stumbled on
  25. MacFreak and decided to brush the dust off of it and see what I could do with
  26. it. I ported it over to CodeWarrior and got a somewhat stable version running
  27. in a few days. I put it up at a few sites for beta testers and to see if it'd
  28. catch on. I got some good feedback about it and decided to go ahead and
  29. pursue the project.
  30.  
  31. In order to get things working, I had to deviate significantly from the Grade
  32. A code. The engine it used to test the user was pretty buggy and sluggish. 
  33. For example, to randomize the structure that holds the test, Grade A would
  34. create a second structure, copy everything over to that one, then copy them
  35. back in random order! Hardly efficient especially when it's randomizing up
  36. to 500 entries to give a 10 question test! So I created a new method for
  37. testing, which I dubbed "Grade A 1.5" and implemented it in MacFolklore.
  38.  
  39. Once MacFolklore seemed like a stable program, I decided to try for a 
  40. graphical interface instead of plain text. Some problems immediately became
  41. apparrent. Some ideas popped into my head for making the randomize and
  42. testing algorithms more efficient. So for the graphical version, I came up
  43. with yet another specification, "Grade A 2.0". This proved to be more
  44. stable, faster, and easier to program. This is the spec that is used in
  45. the release version of MacFolklore.
  46.  
  47.  
  48. _About the engine itself_
  49.  
  50. The Grade A 2.0 specification is something any C programmer could whip up
  51. in a day or two. I don't claim this to be any breakthrough technology. 
  52. Grade A 2.0 is basically a static array of testing cells, each of which
  53. has a question, answer, and three choices. It's not the most efficient
  54. implementation, but I didn't feel that a project of this size required
  55. dynamic allocation (yet).
  56.  
  57. The reason I'm writing about the testing engine is because testing is
  58. a common application. I think that Grade A 2.0 is a decent way to 
  59. implement testing, and the methods it uses could benefit other 
  60. programmers. 
  61.  
  62. The entire code for MacFolklore is contained in one c file, with some
  63. utility functions provided by a library I wrote and file I/O provided
  64. by the ANSI C library. The format is linear in nature, unlike most
  65. Macintosh programs. There's a definite beginning and end. All it does
  66. is display some welcome screens, read in a file, randomize the order
  67. questions will be given in, and test the user.
  68.  
  69.  
  70. _How can I use the Grade A 2.0 specification?_
  71.  
  72. If you're a beginning C programmer and you want to write some sort of
  73. quiz program, feel free to contact me. I'd be glad to share some ideas
  74. and parts of the code with you. 
  75.  
  76. If you're interested in using the Grade A 2.0 testing engine for a
  77. commercial application or something other than in-house development
  78. or shareware, I would be glad to give you the code for a flat fee or
  79. royalty rate. It's simple and heavily commented.
  80.  
  81.  
  82. _I want to write a quiz program, but I don't want to use Grade A_
  83.  
  84. Like I said, this is something that would be simple for most C
  85. programmers. If MacFolklore inspires you to go out and write a 
  86. quiz program, I'd be very intersted in looking at it and/or
  87. beta testing for you. Please let me know...
  88.  
  89.  
  90. _How can I contact you?_
  91.  
  92. Scott J. Kleper
  93. 134 Caversham Woods
  94. Pittsford, NY  14534
  95.  
  96. sjked@rit.edu
  97.